package com.wmx.jmds.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * Springboot + JdbcTemplate + hikari 多数据源使用
 *
 * @author wangMaoXiong
 * @version 1.0
 * @date 2022/2/23 17:14
 */
@Service
public class JmdService {

    /**
     * 默认数据源模板
     */
    @Resource
    private JdbcTemplate jdbcTemplate;

    /**
     * workflow 数据源模板
     */
    @Resource(name = "workflowJdbcTemplate")
    private JdbcTemplate workflowJdbcTemplate;

    /**
     * element 数据源模板
     */
    @Autowired
    @Qualifier("elementJdbcTemplate")
    private JdbcTemplate elementJdbcTemplate;

    /**
     * 使用默认的数据源进行操作
     */
    public List<Map<String, Object>> defaultDataSource() {
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList("select * from emp limit 100");
        return mapList;
    }

    /**
     * 使用自定义的 workflow 数据源进行操作
     *
     * @param
     */
    public List<Map<String, Object>> workflowDataSource() {
        List<Map<String, Object>> mapList = workflowJdbcTemplate.queryForList("select * from sys_config limit 100");
        return mapList;
    }

    /**
     * 使用自定义的 workflow 数据源进行操作
     *
     * @param
     */
    public List<Map<String, Object>> elementDataSource() {
        List<Map<String, Object>> mapList = elementJdbcTemplate.queryForList("select * from user limit 100");
        return mapList;
    }

}
